#ifndef CONFIG_MANAGER_H
#define CONFIG_MANAGER_H

#include <QObject>
#include <QSettings>
#include <QString>

class ConfigManager : public QObject
{
    Q_OBJECT

public:
    explicit ConfigManager(QObject *parent = nullptr);
    
    // 配置读取
    bool getSaveToFile() const;
    QString getOutputFilePath() const;
    QString getConfigFilePath() const;
    
    // 配置写入
    void setSaveToFile(bool saveToFile);
    void setOutputFilePath(const QString &filePath);
    
    // 配置管理
    void loadConfiguration();
    void saveConfiguration();
    void resetToDefaults();
    void showCurrentConfig() const;
    
    // 工具方法
    QString getDefaultOutputPath() const;
    bool isValidOutputPath(const QString &path) const;
    QString getFormattedConfigInfo() const;

private:
    QSettings *m_settings;
    QString m_configFilePath;
    
    // 配置参数
    bool m_saveToFile;
    QString m_outputFilePath;
};

#endif // CONFIG_MANAGER_H
